module.exports = function(grunt) {
    grunt.initConfig({
        // 配置文件，参考package.json配置方式，必须设置项是
        // name, version, author
        // name作为gallery发布后的模块名
        // version是版本，也是发布目录
        // author必须是{name: "xxx", email: "xxx"}格式
        pkg: grunt.file.readJSON('package.json'),
        banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
            '<%= grunt.template.today("yyyy-mm-dd h:MM:ss TT") %>\n' +
            '<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' +
            '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
            ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */\n',

        // kmc打包任务，默认情况，入口文件是index.js，可以自行添加入口文件，在files下面
        // 添加
        kmc: {
            options: {
                packages: [
                    {
                        name: '<%= pkg.name %>',
                        path: '../'
                    }
                ],
                //depFilePath: '<%= pkg.version %>/build/mods.js',
                comboOnly: false,
                fixModuleName:true,
                comboMap: true,
                map: [["<%= pkg.name %>/", "spring/<%= pkg.name %>/"]]
            },
            main: {
                files: [
                    {
                        expand:true,
                        cwd:'<%=pkg.version %>/',
                        src: ['**/*.js'],
                        dest: "../../build/<%=pkg.name %>/<%=pkg.version %>/"
                    }
                ]
            }
        },
        jshint: {
            options: {
                smarttabs:true,
                browser:true,
                devel:true,
                sub:true,
                evil:true,
                globals: {
                    jQuery: true
                }
            },
            all: ['**/*.js','!node_modules/**/*']
        },
        // 打包后压缩文件
        // 压缩文件和入口文件一一对应
        uglify: {
            options: {
                banner: '<%= banner %>'
            },
            base: {
                files: [{
                   expand: true,
                   src: ['**/*.js','!*-min.js'],
                   dest: '../../build/<%=pkg.name %>/<%=pkg.version %>/',
                   cwd: '../../build/<%=pkg.name %>/<%=pkg.version %>',
                   ext: '-min.js'

                }]
            }
        },
        copy: {
            main: {
                expand: true,
                cwd: '<%=pkg.version %>/',
                src: ['*.*','!*.js'],
                dest: '../../build/<%=pkg.name %>/<%=pkg.version %>/',
                flatten: true,
                filter: 'isFile'
            }
        }


    });

    // 使用到的任务，可以增加其他任务
    grunt.loadNpmTasks('grunt-contrib-uglify');
    //grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-kmc');
    grunt.loadNpmTasks('grunt-contrib-copy');
    return grunt.registerTask('default', ['kmc', 'uglify', 'copy']);
};